/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package entities.question;

import entities.Proposition;

import java.util.List;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;

/**
 * Classe de question à choix Unique
 * @author loic.vaugeois
 */
@Entity
@DiscriminatorValue(value="unique")
public class QuestionUnique extends AbstractQuestion {


/*
 *********************ATTRIBUTS
 */

    /*
     * la collection n est la que pour rester coherent avec les methodes abstraite de la classe mere
     */
    @ManyToMany
    @JoinTable(name="proposer",
    joinColumns={@JoinColumn(name="id_question")},
    inverseJoinColumns={@JoinColumn(name="id_proposition")})
    private List<Proposition> listProposition;




/*
 *********************GETTER SETTER
 */


    public void setPropositions(List<Proposition> listProposition) {
        if (listProposition==null) throw new IllegalArgumentException("Une question à choix unique doit avoir au moins SSune proposition.");
        this.listProposition = listProposition;
    }

    @Override
    public List<Proposition> getPropositions() throws UnsupportedOperationException{
        return listProposition;
    }

/*
 *********************CONSTRUCTEURS
 */

    /**
     * Constructeur QuestionUnique
     * @param intituleQuestion
     * @param listProposition
     */
    public QuestionUnique(String intituleQuestion, List<Proposition> listProposition) {
        super(intituleQuestion);
        setPropositions(listProposition);
    }

    /**
     * Constructeur nécessaire à JPA
     */
    public QuestionUnique(){

    }

    @Override
    public boolean equals(Object obj) {
        return super.equals(obj);
    }

    @Override
    public int hashCode() {
        return super.hashCode();
    }



}
